// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Pin Up Casino Azərbaycan – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Pin Up Casino Azərbaycan

Pin Up Casino Azərbaycanda onlayn kazino oyunlarının ən məşhur və etibarlı platformalarından biridir. Pinap az oyunsevərlərə geniş oyun seçimi, yüksək keyfiyyətli dizayn və əla xidmət təklif edir. pinup kazinosu Azərbaycanlı oyunsevərlər arasında çox populyardır və onun pin up markası artıq tanınmışdır.

Pin up casino saytı müxtəlif növ slot maşınları, kart oyunları və canlı kazino oyunları ilə zəngindir. Oyunsevərlər pin up saytında özünə uyğun oyunu asanlıqla tapa bilər və real pul qazana bilər. Pinap az saytının təhlükəsizliyi və etibarlılığı barədə oyunsevərlərə əminlik vermək üçün, sayt müasir təhlükəsizlik texnologiyaları ilə təchiz olunub.

Pin up casino Azərbaycanda fəaliyyət göstərən ən yaxşı onlayn kazinolardan biridir. Pinup oyunsevərlərə yüksək keyfiyyətli xidmət, geniş oyun seçimi və əla dizayn təklif edir. Əgər siz də pin up oyunsevərsəniz, onda pinap az saytını yoxlamaqdan çəkinməyin.

Pin Up Casino-nın təqdim etdiyi oyunlar

Pin Up Casino Azərbaycanda ən məşhur onlayn kazinolardan biridir. Pin up giriş etməklə, siz pin up casino-nın təqdim etdiyi müxtəlif oyunlarla tanış ola bilərsiniz.

  • Slot oyunları: Pin up casino-da müxtəlif slot oyunları mövcuddur, hansı ki, sizə yüksək qazanc şansı təqdim edir.
  • Kart oyunları: Pin up casino-da poker, blackjack və başqa kart oyunları mövcuddur.
  • Rulet: Pin up casino-da rulet oyunu da mövcuddur, hansı ki, sizə şanslı olmaq üçün fürsət verir.

Pinup casino-da həmçinin canlı oyunlar mövcuddur, hansı ki, sizə real vaxt rejimində oyun oynamaq imkanı verir.

  • Canlı rulet: Pin up casino-da canlı rulet oyunu mövcuddur, hansı ki, sizə real vaxt rejimində rulet oynamaq imkanı verir.
  • Canlı poker: Pin up casino-da canlı poker oyunu da mövcuddur, hansı ki, sizə real vaxt rejimində poker oynamaq imkanı verir.
  • Pin up casino-da oyun oynamaq üçün sizə pin up giriş etmək lazımdır. Pin up giriş etdikdən sonra, siz pin up casino-nın təqdim etdiyi müxtəlif oyunlarla tanış ola bilərsiniz.

    Qeydiyyat və daxil olma prosesi

    Pin Up Casino Azərbaycanda oynamaq istəyən istifadəçilər üçün qeydiyyat və daxil olma prosesi çox asandır. Pin Up saytına daxil olduqdan sonra, “Qeydiyyat” düyməsini tıklayıb, lazım olan məlumatları daxil etmək lazımdır. Bu məlumatlara ad, soyad, e-poçt ünvanı və şifrə daxildir.

    Pin Up Giriş prosesi üçün istifadəçilərə e-poçt ünvanı və şifrə tələb olunur. Əgər siz artıq Pin Up saytında qeydiyyatdan keçibsizsə, yalnız Pin Up giriş məlumatlarınızı daxil edib, hesabınıza daxil ola bilərsiniz.

    Pinup saytında qeydiyyatdan keçmək və daxil olmaq üçün minimum yaş 18 olmalıdır. Həmçinin, istifadəçilərə Pin Up Casino qaydalarını və şərtlərini öyrənmək tövsiyə olunur.

    Pin Up Casino-da Ödəniş və Çıxarış Üsulları

    Pin Up Casino Azərbaycanda fəaliyyət göstərən bir onlayn kazinodur və pinap az, pin up, pin up giriş, pin up casino kimi axtarış sorğuları ilə tapıla bilər. Bu kazinoda oyunçulara müxtəlif ödəniş və çıxarış üsulları təklif olunur.

    Ödəniş Üsulları

    Pin Up Casino-da ödənişlər bank kartları, elektron pul kisələri və digər üsullarla həyata keçirilə bilər. Oyunçular pin up giriş etdikdən sonra hesablarına vəsait daxil edə bilərlər.

    Pin Up Casino-da təklif olunan ödəniş üsullarına nəzər saldıqda, oyunçuların seçimi çox genişdir. Onlar pin up casino-ya daxil olduqdan sonra ən uyğun ödəniş üsulunu seçə bilərlər.

    Çıxarış Üsulları

    Pin Up Casino-da çıxarışlar da asanlıqla həyata keçirilə bilər. Oyunçular qazandıqları məbləği hesablarından asanlıqla çıxara bilərlər.

    Pin Up Casino-da təklif olunan çıxarış üsulları da kifayət qədər çoxdur. Oyunçular pin up casino-da ən uyğun çıxarış üsulunu seçə bilərlər və qazandıqları məbləği asanlıqla ala bilərlər.

    Pin Up Casino-nun təhlükəsizlik və lisenziyası

    Pin Up Casino, pinup, pinap az, pin up giriş, pin up casino kimi məşhur olan bu onlayn kazino, oyunsevərlərə təhlükəsiz və etibarlı bir mühit təqdim edir. Pin Up Casino, Curacao hökuməti tərəfindən verilmiş lisenziyaya malikdir və bu, kazinonun fəaliyyətinin qanuni və nəzarət altında olduğunu göstərir.

    Təhlükəsizlik tədbirləri

    Pin Up Casino, oyunsevərlərin məlumat və pullarının təhlükəsizliyini təmin etmək üçün müasir təhlükəsizlik texnologiyalarından istifadə edir. SSL şifrələmə texnologiyası, oyunsevərlərin məlumat və pullarının məxfi qalmasını təmin edir. Bundan əlavə, Pin Up Casino, antifraud sistemlərindən də istifadə edir ki, bu da kazinonun saxtakarlıq və digər qanun pozuntularına qarşı mübarizə aparmasına kömək edir.

    Lisenziya və nəzarət

    Pin Up Casino, Curacao hökuməti tərəfindən verilmiş lisenziyaya malikdir və bu, kazinonun fəaliyyətinin qanuni və nəzarət altında olduğunu göstərir. Lisenziya, kazinonun fəaliyyətinin müntəzəm olaraq yoxlanılmasını və nəzarət edilməsini təmin edir ki, bu da oyunsevərlərə etibarlı və ədalətli bir mühit təqdim edilsin.

    Design and Develop by Ovatheme